Virtual place-located anchor

ABSTRACT

A method is disclosed that may include, in a creating phase: receiving an instruction to generate a virtual place-located anchor at a virtual location that is world-locked; receiving data items from a target data source; linking a subset of the data items to the virtual place-located anchor; and receiving a permission from a first user specifying a condition under which a second user may view one or more holograms of the subset of data items. In a viewing phase, first display data may be transmitted to cause a first display device to display the holograms to the first user at the virtual place-located anchor; and if the condition is satisfied, second display data may be transmitted to cause a second display device to display the holograms to the second user at the virtual place-located anchor.

BACKGROUND

Web-based social networks, email and other on-line platforms enableusers to share and exchange digital content, such as messages, images,video, audio, etc. With the proliferation of mobile computing devices,the volume of such on-line content that is created and shared continuesto increase.

To receive updates or other content from friends and others, a user mayfetch or otherwise access a computing device and open a correspondingapplication to view such content. Given the increasing volume of on-linecontent, a user may sift through numerous notifications, updates, andother unrelated content to find the user's desired content, such asupdates from a particular friend. In some cases, finding and activatinga device, opening an application, and sorting through numerous items tofind desired content may impose undesirable delays in the user receivingthe desired content.

Some technologies enable users to experience a fully or partiallyvirtual world. For example, some virtual reality head-mounted display(HMD) devices may display a fully-immersive, entirely virtualenvironment with no view of the real world. Other, augmented reality HMDdevices may include a partially transparent display that blends a user'sview of the real world with displayed virtual objects and other content.In some cases, a user may desire to share selected on-line content withanother user who is using a virtual reality or augmented reality device.However, managing the availability and presentation of such content canprove challenging.

SUMMARY

To address these issues, a computing device and method are provided forgenerating a virtual place-located anchor at which holograms may beviewed. The computing device may comprise an anchor program executed bya processor of the computing device, wherein the anchor program isconfigured to, in a creating phase: receive an instruction to generate avirtual place-located anchor at a virtual location that is world-locked;receive a plurality of data items from a target data source at which afirst user has an account; link a subset of the plurality of data itemsto the virtual place-located anchor; and receive a permission via userinput from the first user, the permission specifying a condition underwhich a second user is authorized to view one or more holograms of thesubset of data items.

The anchor program also may be configured to, in a viewing phase:transmit first display data to a first display device comprising an atleast partially see-through display configured to visually augment aview of a real world three dimensional environment through the display,the first display data causing the first display device to display theone or more holograms of the subset of data items to the first user atthe virtual place-located anchor at the virtual location; determine ifthe condition is satisfied; and if the condition is satisfied, transmitsecond display data to cause a second display device to display the oneor more holograms of the subset of data items to the second user at thevirtual place-located anchor at the virtual location.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a head-mounted display device according to an example ofthe present description.

FIG. 2 is a schematic view of a computing device for generating avirtual place-located anchor according to an example of the presentdisclosure.

FIG. 3 shows users wearing head-mounted display devices of FIG. 1 in afirst room according to an example of the present description.

FIG. 4 shows a user from FIG. 3 wearing the head-mounted display deviceof FIG. 1 in a second room according to an example of the presentdescription.

FIG. 5 shows a user from FIG. 3 wearing the head-mounted display deviceof FIG. 1 in a third room according to an example of the presentdescription.

FIG. 6 shows a smartphone displaying a user interface for the socialnetwork according to an example of the present disclosure.

FIGS. 7A, 7B and 7C are a flow chart of a method of generating a virtualplace-located anchor according to an example of the present description.

FIG. 8 shows a computing system according to an embodiment of thepresent description.

DETAILED DESCRIPTION

The present descriptions relate to generating a virtual place-locatedanchor at which holograms and other virtual content may be viewed. Asdescribed in more detail below, in some examples display data may betransmitted to a display device to cause the device to display one ormore holograms of a subset of data items at the virtual place-locatedanchor. In some examples, the display device may comprise an HMD device,such as an augmented reality display device that includes an at leastpartially see-through display configured to visually augment a view of areal world three dimensional environment through the display. In otherexamples, the HMD device may comprise a fully-immersive virtual realitydisplay device. In other examples, the display device may comprise atablet computer, smartphone, or other mobile computing device capable ofvisually augmenting a user's view of a real world three dimensionalenvironment via the display.

FIG. 1 illustrates an HMD device 10 according to an example of thepresent disclosure. In this example, the illustrated HMD device 10 takesthe form of wearable glasses or goggles, but it will be appreciated thatother forms are possible. The HMD device 10 may include an at leastpartially see-through stereoscopic display 12 that may be configured tovisually augment a view of a real world three dimensional environment bythe user through the display.

For example, the HMD device 10 may include an image production system 22that is configured to display virtual objects such as holograms to theuser with the at least partially see-through display 12. The hologramsmay be visually superimposed onto the physical environment so as to beperceived at various depths and locations. The HMD device 10 may usestereoscopy to visually place a virtual object at a desired depth bydisplaying separate images of the virtual object to both of the user'seyes.

To achieve the perception of depth, the image production system 22 ofthe HMD device 10 may render the two images of the virtual object at arendering focal plane of the HMD device 10, such that there is abinocular disparity between the relative positions of the virtual objectin the two images. For example, such binocular disparity may be ahorizontal disparity where the relative positions of the virtual objectin the two images are separated by a distance in the x axis direction.In this embodiment, the x axis may be defined as the axis extendinghorizontally to the left and the right relative to the user, the y axisextending upward and downward vertically relative to the user, and the zaxis extending forward and backward relative to the user, andorthogonally to the x and y axes.

The horizontal disparity between the relative positions of the virtualobject in the two images will cause the user to perceive that thevirtual object is located at a certain depth within the viewed physicalenvironment due to stereopsis. Using this stereoscopy technique, the HMDdevice 10 may control the displayed images of the virtual objects, suchthat the user may perceive that the virtual objects exist at a desireddepth and location in the viewed real world three dimensionalenvironment.

In other examples, the at least partially see-through display 12 andimage production system 22 may utilize other image display technologiesand configurations. For example, the at least partially see-throughdisplay 12 may be configured to enable a wearer of the HMD device 10 toview a physical, real-world object in the physical environment throughone or more partially transparent pixels that are displaying a virtualobject representation. In some examples the display 12 may includeimage-producing elements located within lenses (such as, for example, asee-through Organic Light-Emitting Diode (OLED) display). As anotherexample, the display 12 may include a light modulator on an edge of thelenses. In this example, the lenses may serve as a light guide fordelivering light from the light modulator to the eyes of a wearer. Sucha light guide may enable a wearer to perceive a 3D holographic imagelocated within the physical environment that the wearer is viewing,while also allowing the wearer to view physical objects in the physicalenvironment, thus creating an augmented reality environment.

In other examples, the at least partially see-through display maycomprise one or more optical redirection elements or techniques, such asa digital single lens reflex camera or other image capture device. Inother examples, the display 12 may comprise a non-see-through displaythat provides an immersive, virtual reality experience in which virtualcontent such as holograms and/or two-dimensional images are displayed toa user.

The HMD device 10 includes an optical sensor system 14 that may includeone or more optical sensors. In one example, the optical sensor system14 may include an outward facing optical sensor 16 that may beconfigured to detect the real world environment from a similar vantagepoint (e.g., line of sight) as observed by the user through thesee-through display 12. The optical sensor system 14 may include avariety of additional sensors, such as a depth camera and an RGB camera,which may be a high definition camera or have another resolution.

The HMD device 10 may further include a position sensor system 18 thatmay include one or more position sensors such as accelerometer(s),gyroscope(s), magnetometer(s), global positioning system(s),multilateration tracker(s), and/or other sensors that output positionsensor information useable as a position, orientation, and/or movementof the relevant sensor.

Optical sensor information received from the optical sensor system 14and/or position sensor information received from position sensor system18 may be used to assess a position and orientation of the vantage pointof the see-through display 12 relative to other environmental objects.In some embodiments, the position and orientation of the vantage pointmay be characterized with six degrees of freedom (e.g., world-space X,Y, Z, pitch, roll, yaw). The vantage point may be characterized globallyor independent of the real world background. The position and/ororientation may be determined with an on-board computing system (e.g.,on-board computing system 20) and/or an off-board computing system.

In some examples, the HMD device 10 may receive and utilize data fromsensors that are not located on the device. For example, the HMD device10 may receive optical sensor information from one or more externalcameras that are in the same room as the user. In some examples, the HMDdevice 10 may receive sensor data from another HMD device in the area.In some examples, the HMD device 10 may receive position informationfrom a tracking sensor on a movable object.

Furthermore, the optical sensor information and the position sensorinformation may be used by a computing system to perform analysis of thereal world three dimensional environment, such as depth analysis,surface reconstruction, environmental color and lighting analysis, orother suitable operations. In particular, the optical and positionalsensor information may be used to create a virtual model of the realworld three dimensional environment. In some examples, the virtual modelmay comprise a three dimensional coordinate space that is overlaid uponthe real world three dimensional environment. In some examples, suchsensor information may be provided to another computing device, such asa server, that creates the virtual model of the real world threedimensional environment.

In some examples, the position and orientation of the vantage point maybe characterized relative to this virtual space. Moreover, the virtualmodel may be used to determine positions of holograms and other virtualobjects in the virtual space, and to add additional virtual objects tobe displayed to the user at a desired depth and location within thevirtual world.

The HMD device 10 may also include a microphone system that includes oneor more microphones, such as microphone 58, that capture audio data. Inother examples, audio may be presented to the wearer via one or morespeakers, such as speaker 60 on the HMD device 10.

FIG. 2 is a schematic illustration of a computing device 200 interactingwith display devices and target data sources according to an embodimentof the present disclosure. As explained in more detail below, thecomputing device 200 may be used to generate a virtual place-locatedanchor at a virtual location that is world-locked. Computing device 200may take the form of a server, networking computer, gaming console,mobile communication device, desktop computer, laptop computer, tabletcomputer, set-top box (e.g. cable television box, satellite televisionbox), or any other type of suitable computing device. In some examples,computing device 200 may comprise an embedded system within a largerelectronic or mechanical device or system. Additional details regardingthe components and computing aspects of the computing device 200 aredescribed in more detail below with respect to FIG. 8.

The computing device 200 may include an anchor program 214 that may bestored in mass storage 218 of the computing device. The anchor program214 may be loaded into memory 220 and executed by a processor 260 of thecomputing device 200 to perform one or more of the methods and processesfor generating a virtual place-located anchor, as described in moredetail below.

The computing device 200 may be communicatively coupled to one or moreother devices via a wired connection or a wireless connection to anetwork. In some examples, the network may take the form of a local areanetwork (LAN), wide area network (WAN), wired network, wireless network,personal area network, or a combination thereof, and may include theInternet. In the example of FIG. 2, computing device 200 iscommunicatively coupled to a first display device 30, a second displaydevice 34, a first target data source 38 and a second target data source42 via one or more networks. In other examples the computing device 200may be operatively connected with fewer or additional devices.

With reference also to FIGS. 3-6, example use cases illustrating aspectsof the present disclosure will now be presented. As schematically shownin FIG. 3, a first user 302 may be standing in a living room 306 and maywear first display device 30, which in this example may take the form ofHMD device 10 shown in FIG. 1. As noted above, first display device 30(HMD device 10) may comprise an at least partially see-through displayconfigured to visually augment the view of first user 302 through thedisplay of the real world three dimensional environment of living room306. The first display device 30 may generate a virtual model of theliving room 306 using a three dimensional coordinate space overlaid uponthe real world living room. In the example of FIG. 3, such threedimensional coordinate space is indicated by the x-y-z axes. Asdescribed in more detail below, the first display device 30 also mayinclude program logic configured to identify physical objects within theliving room 306.

With reference also to FIG. 2, first user 302 may have an account at thefirst target data source 38. In some examples the first target datasource 38 may comprise a social network. As used herein, “socialnetwork” may include a variety of on-line platforms for building socialrelations among people who share interests, activities, backgrounds orother connections. Examples of social networks include, but are notlimited to, on-line content sharing services, photo and/or video sharingservices, recommendation services, instant messaging services, emailservices, combinations of the foregoing, and any other on-line platformthat enables content sharing and/or communication among users. Withreference to FIG. 3, in this example the first target data source 38 maybe a Social Network A316.

In the example of FIG. 3, first user 302 may use the first displaydevice 30 to capture an image of the art piece 312. The first user 302may desire to share the image with others via social network A 316.Accordingly, the first user 302 may send the image to the social networkA 316 in a posting 320 to the network.

Other users of the social network A may post comments to the posting 320from first user 302 on the network. In one example and with referenceagain to FIG. 2, one or more users may use one or more third partydevices 46 to post comments 50 to the posting 320. For example, Friend Aof first user 302 may use a third party device to post a comment 50 tothe first user's posting 320. In some examples a comment may comprisetext, an image, a video, a hashtag, and/or any combinations of theforegoing.

The first user 302 may desire to view the comment 50 and any othercomments posted to social network A 316 regarding the first user'sposting 320. Accordingly, and in one potential advantage of the presentdisclosure, first user 302 may instruct the First display device 30 togenerate a virtual place-located anchor at a world-locked virtuallocation. In different examples, such instruction may comprise hand,head or other bodily gesture input, voice input, eye-tracking input, orother suitable user input. For example, first user 302 may speak aninstruction to “Put an anchor at the art piece for comments to thepicture I just posted to Social Network A.” As described in more detailbelow, one or more holograms of the comment 50 and other comments to thefirst user's posting 320 may be displayed by First display device 30 atthe art piece 312.

With reference also to FIG. 2, in some examples and in response to theinstruction from the first user 302, the first display device 30 maytransmit to computing device 200 an instruction 54 to generate a virtualplace-located anchor 56 at a virtual location that is world-locked.Computing device 200 may be communicatively coupled to the first targetdata source 38, and may receive a plurality of data items 62 from thetarget data source. In examples where the first target data source 38comprises social network A 316, the data items 62 may comprise postings,updates, and other items provided to the social network A by users, andmay include items and other content generated by the social network.

In response to the instruction 54 from first user 302 via first displaydevice 30, the anchor program 214 may link a subset 64 of the pluralityof data items 62 from the first target data source 38 to the virtualplace-located anchor 56. In the present example, the anchor program 214may filter the data items 62 to identify and select comments to thefirst user's posting 320 of the image of the art piece 312. The anchorprogram 214 may then transmit first display data 66 to the first displaydevice 30 that causes the device to display one or more holograms ofthis subset of data items to the first user 302.

In the example of FIG. 3, the first display device 30 may display to thefirst user 302 holograms of comments to the first user's posting 320 ofthe image of the art piece 312. For example, a hologram 330A of thecomment “Nice!” from Friend A to the first user's posting 320 may bedisplayed at the world-locked virtual place-located anchor at thevirtual location. One or more other holograms of comments to the firstuser's posting 320 from other friends and/or users of social network A,such as holograms 330B and 330C, may also be displayed.

These holograms may be displayed by the first display device 30 at theworld-locked virtual place-located anchor 56. In some examples, thevirtual location of the virtual place-located anchor 56 may beworld-locked to a position that is fixed in the three dimensionalcoordinate space overlaid upon the real world three dimensionalenvironment. In the example of FIG. 3, such a fixed position may beestablished as an area or a volume of space indicated at 334 that isadjacent to the art piece 312 which is the subject of the first user'sposting 320.

As noted above, the first user 302 may designate the virtual location ofthe virtual place-located anchor via user input. In some examples, thefirst display device 30 may programmatically generate an instruction fora virtual place-located anchor at a world-locked virtual location. Forexample, in response to the first user's posting 320 of the image of theart piece 312, the first display device 30 may use sensor data toprogrammatically identify the art piece 312 in living room 306 as asubject of the posting. In response to identifying the art piece 312,the first display device 30 may programmatically transmit an instructionto computing device 200 to generate a virtual place-located anchor at aworld-locked virtual location corresponding to the art piece 312.

In other examples, a fixed position may be defined as another locationin the living room 306. For example, the first user 302 may provide userinput that establishes a world-locked fixed position for the virtualplace-located anchor 56 as the space above the bookcase 340. In otherexamples, such a fixed position may be defined as a room, building,inside a vehicle, at an outdoor space or location, or any location thatmay be mapped to a three dimensional coordinate space.

In some examples, the virtual location of the virtual place-locatedanchor 56 may be world-locked to a position relative to an object in thereal world three dimensional environment. With reference to FIG. 3, inone example the virtual place-located anchor may be world-locked to aposition relative to the art piece 312 that is the subject of the firstuser's posting 320.

In some examples, where the virtual location of the virtualplace-located anchor 56 is world-locked to a position relative to anobject, the virtual place-located anchor may travel with the object. Forexample and with reference to FIG. 4, the art piece 312 may be movedfrom the living room 306 to the kitchen 400. In this example, when theart piece 312 is at an initial real world location in the living room306, the first display device 30 may capture one or more images of theart piece as well as other aspects of the real world location.

After the art piece 312 has been moved to the table 404 in kitchen 400,the first user 302 may enter the kitchen. Using sensor data 68 collectedfrom sensors of the first display device 30, the anchor program 214 mayidentify the art piece 312 and may identify the kitchen 400 as asubsequent real world location that is different from the initial realworld location of the living room 306. In response to identifying theart piece 312 in the kitchen 400, the computing device 200 may transmitdisplay data to the first display device 30 that causes the device todisplay the holograms 330A, 330B and 330C to the first user 302 at thevirtual place-located anchor at the virtual location world-locked to theposition relative to the art piece 312 in the kitchen 400.

In other examples, a virtual place-located anchor may be world-locked toa position relative to an object that is not the subject of a user'sposting. For example and with reference to FIG. 3, the virtualplace-located anchor 56 the first user's posting 320 may be world-lockedto a position relative to the coat rack 350. In this example, the firstuser 302 may provide via user input an instruction to “Put an anchor atthe coat rack for comments to the picture I just posted to SocialNetwork A.” One or more holograms of the comment 50 and other commentsto the first user's posting 320 may be displayed by first display device30 at the coat rack 350.

In some examples the virtual place-located anchor 56 may not bedisplayed to a user. In other examples, an anchor hologram representingthe virtual place-located anchor 56 at the world-locked virtual locationmay be displayed to a user. In the example of FIG. 3, an anchor hologramin the form of a holographic star 356 may be displayed at theworld-locked virtual location corresponding to the virtual place-locatedanchor 56. In some examples, the holograms 330A, 330B and 330C may bedisplayed within a predetermined distance of the anchor hologram. Forexample, the holograms 330A, 330B and 330C may be displayed within 0.5m, 1.0 m, 2.0 m, or any suitable predetermined distance from theholographic star 356.

In some examples, the appearance of the anchor hologram may be changedin response to one or more comments that are associated with the posting320 of the first user 302. For example, when a new comment is posted,the appearance of the holographic star 356 may change to signal thereceipt of a new comment. Examples of such a change in appearance of theanchor hologram may include blinking, changing color, changing size,etc. In some examples, the first user 302 may provide user input thattriggers the display of a new hologram of the new comment.

In some examples, the first user 302 may desire to allow one or moreothers to view the holograms of the comments associated with the firstuser's posting 320. With continued reference to FIG. 3, the first user302 may transmit via user input to first display device 30 one or morepermissions 70 specifying one or more conditions 72 under which one ormore others are authorized to view the holograms 330A, 330B and 330C.

In one example, a connection permission may specify a condition 72 thatlimits viewing of the holograms to other users who are connected withthe first user 302 via one or more social networks, such as socialnetwork A. For example, the first user 302 may have a friend with whomthe first user is connected via social network A. With reference againto FIG. 2, this friend may be associated with second display device 34.In the example of FIG. 3, this friend is illustrated as second user 364who is wearing second display device 34 that may take the form of HMDdevice 10. The second display device 34 may be communicatively coupledto the computing device 200.

The first user 302 may create a connection permission 70 that specifiesthat other users who are connected with the first user 302 via socialnetwork A may view any holograms of comments associated with anypostings of the first user to the social network A. In the example ofFIG. 3, when the second user 364 enters the living room 306, and usingsensor data 68 from the second display device 34, the anchor program 214may identify the art piece 312 and discover the virtual place-locatedanchor 56 associated with the art piece. Anchor program 214 maydetermine that the condition 72 specified by the connection permission70 is satisfied (e.g., second user 364 is connected with the first user302 via a social network A). In response, computing device 200 maytransmit second display data 74 to the second display device 34 thatcauses the device to display the holograms 300A, 300B and 300C to thesecond user 364 at the virtual place-located anchor 56 at theworld-locked virtual location adjacent to the art piece 312.

In some examples, the first user 302 may create a place-based permission70 that specifies a condition 72 that limits viewing of the holograms toother users who are located within a predetermined viewing range of thevirtual place-located anchor. For example and with reference to FIG. 3,the first user 302 may create a place-based permission 70 that specifiesthat any other users who are present in the living room 306 may viewholograms of comments associated with postings of the first user to thesocial network A. In this example, the predetermined viewing range isdefined as being located in the living room 306.

In the example of FIG. 3, a work colleague 370 is visiting the firstuser 302 and standing in the living room 306. The work colleague may bewearing a display device 372 that may take the form of HMD device 10.The display device 372 may be communicatively coupled to the computingdevice 200. In the example of FIG. 3, when the work colleague 370 entersthe living room 306, and using sensor data from the display device 372,the anchor program 214 may identify the art piece 312 and discover thevirtual place-located anchor 56 associated with the art piece. Anchorprogram 214 may determine that the condition 72 specified by theplace-based permission 70 is satisfied (e.g., work colleague 370 islocated in the living room 306). Accordingly, computing device 200 maytransmit display data to the display device 372 that causes the deviceto display the holograms 300A, 300B and 300C to the work colleague 370at the virtual place-located anchor 56 at the world-locked virtuallocation.

In some examples, the place-based permission may specify a condition 72that limits viewing of the holograms to other users who are locatedwithin a predetermined viewing range in the form of a threshold distancefrom the virtual place-located anchor 56. For example and with referenceto FIG. 3, a threshold distance D from the virtual place-located anchormay be specified. If another user is within the threshold distance D,then such user may view the holograms, whether or not such user isconnected to first user 302 via a social network.

In some examples, the virtual place-located anchor may be locatedoutdoors in a public or private space. Also, it will be appreciated thatmany other example use cases and types of permissions are possible. Forexample, the first user 302 may specify a condition that allows one ormore other defined groups of people to view holograms of commentsassociated with postings of the first user to the social network A.Examples of such groups may include, but are not limited to, thosepeople with whom the first user 302 is connected via two or more socialnetworks, those people within a specified social distance of the firstuser (such as friends of friends), an enumerated list of specificpeople, and any other suitable defined group.

In some examples, the first user 302 may desire to view hologramsassociated with postings of the first user to two or more socialnetworks at the same virtual place-located anchor. With reference toFIG. 2, the first user 302 may have an account at the second target datasource 42, which may comprise another social network. The computingdevice 200 may receive another plurality of data items 62 from thesecond target data source 42. As described above with respect to dataitems from the first target data source 38, the computing device 200 maylink a subset of the plurality of data items from the second target datasource 42, such as postings from the first user 302, to the virtualplace-located anchor 56.

With reference also to the example of FIG. 3, the computing device 200may transmit second target data source display data to the first displaydevice 30 worn by first user 302 that causes the first display device todisplay one or more world-locked holograms of the subset of theplurality of data items from the second target data source 42 to thefirst user at the virtual place-located anchor. In the example of FIG.3, the first display device 30 may display to the first user 302holograms 380A and 380B of comments that reference or are otherwiseassociated with a posting made by the first user of the image of the artpiece 312 to the second target data source 42. For example, a hologram380A of the comment “Cool!” from User F may be displayed at the virtualplace-located anchor at the world-locked virtual location. One or moreother holograms of comments to the first user's posting from otherfriends and/or users of the other social network, such as hologram 380B,may also be displayed.

It will be appreciated that the first target data source 38 and secondtarget data source 42 may comprise any of a variety of types of socialnetworks, such as photo and/or video sharing services, recommendationservices, instant messaging services, email services, etc.

In some examples, the first user 302 may desire to view in two or moredifferent locations the holograms of comments to a posting. Withreference now to FIGS. 2, 3 and 5, the first user 302 may have anaccount at another social network SN2. A base virtual place-locatedanchor 230 may be world-locked to a virtual location 382 on or adjacentto the wall 384 in the living room 306. In this example, an anchorhologram in the form of a logo SN2 corresponding to the other socialnetwork may be displayed at the virtual location 382 corresponding tothe base virtual place-located anchor 230.

The computing device 200 may transmit display data to the first displaydevice 30 that causes the device to display holograms to the first user302 at the base virtual place-located anchor 230 at the world-lockedvirtual location 382 adjacent to the wall 384. In this example, theholograms represent comments made to a posting of the first user 302 tothe social network SN2 regarding the first user's favorite soccer team.For example, hologram 386A of the comment “Great match!” from User K maybe displayed at the base virtual place-located anchor at theworld-locked virtual location 382. One or more other holograms ofcomments to the first user's posting from other friends and/or users ofthe other social network SN2, such as holograms 386B and 386C, may alsobe displayed.

With reference now to FIG. 5, the first user 302 may provide user inputto the first display device 30 to generate a mirrored virtualplace-located anchor 240 at another world-locked virtual location in amedia room 500. In this example, the world-locked virtual location isdefined as the volume of space adjacent to the upper left corner oftelevision 504 indicated at 510. Another anchor hologram in the form oflogo SN2 may be displayed to the first user 302 at the world-lockedvirtual location 510 corresponding to the mirrored virtual place-locatedanchor 240.

When the first user 302 is present in the media room 500, the computingdevice 200 may transmit mirror display data to the first display device30 that causes the first display device to display holograms 386A′,386B′ and 386C′ at the mirrored virtual place-located anchor at theworld-locked virtual location 510. As illustrated in FIGS. 3 and 5,holograms 386A′, 386B′ and 386C′ displayed to the first user 302 inmedia room 500 are copies of the holograms 386A, 386B and 386C displayedto the first user 302 in the living room 306. In this manner, the firstuser 302 may use the base virtual place-located anchor 230 and mirroredvirtual place-located anchor 240 to convenienly view the same hologramsin two different locations. In other examples, two, three or moremirrored virtual place-located anchors may be generated and located incorresponding different locations.

In some examples, the first user 302 may interact with a social networkon one or more other display devices, such as a smartphone, tabletcomputer, etc. In some examples the social network may indicate that aposting from the first user 302 is associated with a virtual placelocated anchor. With reference now to FIG. 6, in one example the firstuser 302 (Alley) may interact with social network SN2 via a smartphone600 that displays a mobile user interface 604 for the social networkSN2. Alley may submit to the social network SN2 a posting in the form ofa status update reading “Mighty Team Z wins!! What a performance!” Inother examples, the posting may comprise an image such as a photograph,a video, and/or a text comment.

As described above, the first user 302 may cause first display device 30via computing device 200 to display holograms of comments to her postingto social network SN2 at a virtual place-located anchor at aworld-locked virtual location. In some examples, the computing device200 also may instruct the social network SN2 to indicate that the firstuser's posting is associated with a virtual place-located anchor. Inresponse and in the example of FIG. 6, the mobile user interface 604 ofthe social network SN2 may display an asterisk 610 with the first user'sposting to signal to the first user 302 that this posting is associatedwith a virtual place-located anchor. In this manner, the first user 302is conveniently alerted that holograms of comments to her posting areavailable at a corresponding virtual place-located anchor at aworld-locked virtual location.

In other examples, a variety of other indicators and methods forindicating that a posting is associated with the virtual place-locatedanchor may be used. Such other examples may include, but are not limitedto, highlighting, flashing, coloring, or otherwise altering theappearance of the posting. Also and as described in more detail below,in some examples the display of the smartphone 600 may visually augmenta user's view of a real world environment by displaying virtual contentsuch as two-dimensional images at a virtual place-located anchor.

In some examples, a user may interact with a virtual place-locatedanchor to reply to a comment displayed as a hologram. With referenceagain to FIG. 5, in one example the first user 302 may direct user inputto the anchor hologram SN2 to reply to one of the displayed holographiccomments. In some examples such user input may take the form of voiceinput, eye-tracking/gaze input, gesture input, or any other suitableform of user input. For example, the first user 302 may speak aninstruction to the first display device 30 to “Reply to User J, quoteI'm going to the Team X game. Want to carpool? end quote.” In someexamples, a hologram of the reply of first user 302 may be displayed tothe first user 302 via first display device 30.

FIGS. 7A, 7B and 7C illustrate a flow chart of a method 700 forgenerating a virtual place-located anchor at which holograms may beviewed according to an example of the present disclosure. The followingdescription of method 700 is provided with reference to the software andhardware components described above and shown in FIGS. 1-6. It will beappreciated that method 700 also may be performed in other contextsusing other suitable hardware and software components.

With reference to FIG. 7A, at 704 the method 700 may include in acreating phase, receiving an instruction to generate a virtualplace-located anchor at a virtual location that is world-locked. At 708the virtual location may be world-locked to a position that is fixed ina three dimensional coordinate space overlaid upon the real world threedimensional environment. At 712 the virtual location may be world-lockedto a position relative to an object in the real world three dimensionalenvironment.

At 716 in the creating phase the method 700 may include receiving aplurality of data items from a target data source at which a first userhas an account. At 720 the target data source may comprise a socialnetwork, and the subset of the plurality of data items may comprisethird party comments to a posting from the first user on the socialnetwork. At 724 in the creating phase the method 700 may include linkinga subset of the plurality of data items to the virtual place-locatedanchor.

At 728 in the creating phase the method 700 may include receiving apermission via user input from the first user, the permission specifyinga condition under which a second user is authorized to view one or moreholograms of the subset of data items. At 732 in the creating phase themethod 700 may include transmitting an instruction to the social networkto indicate that the posting is associated with the virtualplace-located anchor.

With reference now to FIG. 7B, in a viewing phase at 736 the method 700may include transmitting first display data to a first display devicecomprising an at least partially see-through display configured tovisually augment a view of a real world three dimensional environmentthrough the display, the first display data causing the first displaydevice to display the one or more holograms of the subset of data itemsto the first user at the virtual place-located anchor at the virtuallocation. At 740 the first display data may cause the first displaydevice to display at the virtual location an anchor hologramrepresenting the virtual place-located anchor; and to display the one ormore holograms within a predetermined distance of the anchor hologram.

At 744 in the viewing phase the method 700 may include determining ifthe condition is satisfied. At 748 in the viewing phase the method 700may include, if the condition is satisfied, transmitting second displaydata to cause a second display device to display the one or moreholograms of the subset of data items to the second user at the virtualplace-located anchor at the virtual location. At 752 in the viewingphase the method 700 may include, where the target data source is asocial network and the permission is a connection permission, if thesecond user is connected with the first user via the social network,then the condition is satisfied. At 756 in the viewing phase the method700 may include, where the permission is a place-based permission, ifthe second user device is located within a predetermined viewing rangeof the virtual place-located anchor, then the condition is satisfied.

With reference now to FIG. 7C, where the virtual location isworld-locked to a position relative to an object in the real world threedimensional environment, and where the object is at an initial realworld location, at 760 in the creating phase the method 700 may includereceiving sensor data from the first user device, and using the sensordata, identifying the object at a subsequent real world locationdifferent from the initial real world location. At 764 in the viewingphase the method 700 may include transmitting subsequent display data tothe first display device that causes the first display device to displaythe one or more holograms to the first user at the virtual place-locatedanchor at the virtual location world-locked to the position relative tothe object at the subsequent real world location.

Where the virtual place-located anchor is a base virtual place-locatedanchor, at 768 in the creating phase the method 700 may includereceiving an instruction to generate a mirrored virtual place-locatedanchor at another virtual location that is world-locked. At 772 in theviewing phase the method 700 may include transmitting mirror displaydata to the first display device that causes the first display device todisplay the one or more holograms to the first user at the mirroredvirtual place-located anchor at the other virtual location.

Where the plurality of data items are a first plurality of data itemsand the target data source is a first target data source, at 776 in thecreating phase the method 700 may include receiving a second pluralityof data items from a second target data source at which the first userhas an account; and linking a subset of the second plurality of dataitems to the virtual place-located anchor. At 780 in the viewing phasethe method 700 may include transmitting second target data sourcedisplay data to the first display device that causes the first displaydevice to display one or more world-locked holograms of the subset ofthe second plurality of data items to the first user at the virtualplace-located anchor.

It will be appreciated that method 700 is provided by way of example andis not meant to be limiting. Therefore, it is to be understood thatmethod 700 may include additional and/or alternative steps relative tothose illustrated in FIGS. 7A, 7B and 7C. Further, it is to beunderstood that method 700 may be performed in any suitable order.Further still, it is to be understood that one or more steps may beomitted from method 700 without departing from the scope of thisdisclosure.

In some embodiments, the methods and processes described herein may betied to a computing system of one or more computing devices. Inparticular, such methods and processes may be implemented as acomputer-application program or service, an application-programminginterface (API), a library, and/or other computer-program product.

While the above examples are described in the context of displayingholograms, it will be appreciated that the present disclosure may beutilized with other virtual content, such as two-dimensional images, andwith non-holographic displays. For example, tablet computers,smartphones, and other mobile computing devices may receive a digitalvideo feed that visually augments a user's view of a real worldenvironment via a display according to the principles of the presentdisclosure.

FIG. 8 schematically shows a non-limiting embodiment of a computingsystem 800 that can enact one or more of the methods and processesdescribed above. Computing system 800 is shown in simplified form.Computing system 800 may take the form of one or more head-mounteddisplay devices as shown in FIG. 1, or one or more devices cooperatingwith a head-mounted display device (e.g., personal computers, servercomputers, tablet computers, home-entertainment computers, networkcomputing devices, gaming devices, mobile computing devices, mobilecommunication devices (e.g., smart phone), and/or other computingdevices).

Computing system 800 includes a logic processor 804, volatile memory808, and a non-volatile storage device 812. Computing system 800 mayoptionally include a display subsystem 816, input subsystem 820,communication subsystem 824, and/or other components not shown in FIG.8.

Logic processor 804 includes one or more physical devices configured toexecute instructions. For example, the logic processor may be configuredto execute instructions that are part of one or more applications,programs, routines, libraries, objects, components, data structures, orother logical constructs. Such instructions may be implemented toperform a task, implement a data type, transform the state of one ormore components, achieve a technical effect, or otherwise arrive at adesired result.

The logic processor may include one or more physical processors(hardware) configured to execute software instructions. Additionally oralternatively, the logic processor may include one or more hardwarelogic circuits or firmware devices configured to executehardware-implemented logic or firmware instructions. Processors of thelogic processor 804 may be single-core or multi-core, and theinstructions executed thereon may be configured for sequential,parallel, and/or distributed processing. Individual components of thelogic processor optionally may be distributed among two or more separatedevices, which may be remotely located and/or configured for coordinatedprocessing. Aspects of the logic processor may be virtualized andexecuted by remotely accessible, networked computing devices configuredin a cloud-computing configuration. In such a case, these virtualizedaspects may be run on different physical logic processors of variousdifferent machines.

Volatile memory 808 may include physical devices that include randomaccess memory. Volatile memory 808 is typically utilized by logicprocessor 804 to temporarily store information during processing ofsoftware instructions. It will be appreciated that volatile memory 808typically does not continue to store instructions when power is cut tothe volatile memory 808.

Non-volatile storage device 812 includes one or more physical devicesconfigured to hold instructions executable by the logic processors toimplement the methods and processes described herein. When such methodsand processes are implemented, the state of non-volatile storage device812 may be transformed—e.g., to hold different data.

Non-volatile storage device 812 may include physical devices that areremovable and/or built-in. Non-volatile storage device 812 may includeoptical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.),semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.),and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tapedrive, MRAM, etc.), or other mass storage device technology.Non-volatile storage device 812 may include nonvolatile, dynamic,static, read/write, read-only, sequential-access, location-addressable,file-addressable, and/or content-addressable devices. It will beappreciated that non-volatile storage device 812 is configured to holdinstructions even when power is cut to the non-volatile storage device812.

Aspects of logic processor 804, volatile memory 808, and non-volatilestorage device 812 may be integrated together into one or morehardware-logic components. Such hardware-logic components may includefield-programmable gate arrays (FPGAs), program-and application-specificintegrated circuits (PASIC/ASICs), program-and application-specificstandard products (PSSP/ASSPs), system-on-a-chip (SOC), and complexprogrammable logic devices (CPLDs), for example.

The term “program” may be used to describe an aspect of computing system800 implemented to perform a particular function. In some cases, aprogram may be instantiated via logic processor 804 executinginstructions held by non-volatile storage device 812, using portions ofvolatile memory 808. It will be understood that different programs maybe instantiated from the same application, service, code block, object,library, routine, API, function, etc. Likewise, the same program may beinstantiated by different applications, services, code blocks, objects,routines, APIs, functions, etc. The term “program” encompassesindividual or groups of executable files, data files, libraries,drivers, scripts, database records, etc.

When included, display subsystem 816 may be used to present a visualrepresentation of data held by non-volatile storage device 812. As theherein described methods and processes change the data held by thenon-volatile storage device, and thus transform the state of thenon-volatile storage device, the state of display subsystem 816 maylikewise be transformed to visually represent changes in the underlyingdata. Display subsystem 816 may include one or more display devicesutilizing virtually any type of technology. Such display devices may becombined with logic processor 804, volatile memory 808, and/ornon-volatile storage device 812 in a shared enclosure, or such displaydevices may be peripheral display devices. The image production system22 configured to display virtual objects such as holograms via the atleast partially see-through display 12 of HMD device 10 described aboveis one example of a display subsystem 816.

When included, input subsystem 820 may comprise or interface with one ormore user-input devices such as a keyboard, mouse, touch screen, or gamecontroller. In some embodiments, the input subsystem may comprise orinterface with selected natural user input (NUI) componentry. Suchcomponentry may be integrated or peripheral, and the transduction and/orprocessing of input actions may be handled on- or off-board. Example NUIcomponentry may include a microphone for speech and/or voicerecognition; an infrared, color, stereoscopic, and/or depth camera formachine vision and/or gesture recognition; a head tracker, eye tracker,accelerometer, and/or gyroscope for motion detection, gaze detection,and/or intent recognition; as well as electric-field sensing componentryfor assessing brain activity; any of the sensors described above withrespect to position sensor system 18 of FIG. 1; and/or any othersuitable sensor.

When included, communication subsystem 824 may be configured tocommunicatively couple computing system 800 with one or more othercomputing devices. Communication subsystem 824 may include wired and/orwireless communication devices compatible with one or more differentcommunication protocols. As non-limiting examples, the communicationsubsystem may be configured for communication via a wireless telephonenetwork, or a wired or wireless local- or wide-area network. In someembodiments, the communication subsystem may allow computing system 800to send and/or receive messages to and/or from other devices via anetwork such as the Internet.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnonobvious combinations and subcombinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

The following paragraphs provide additional support for the claims ofthe subject application. One aspect provides a method, comprising: in acreating phase: receiving an instruction to generate a virtualplace-located anchor at a virtual location that is world-locked;receiving a plurality of data items from a target data source at which afirst user has an account; linking a subset of the plurality of dataitems to the virtual place-located anchor; receiving a permission viauser input from the first user, the permission specifying a conditionunder which a second user is authorized to view one or more holograms ofthe subset of data items; in a viewing phase: transmitting first displaydata to a first display device comprising an at least partiallysee-through display configured to visually augment a view of a realworld three dimensional environment through the display, the firstdisplay data causing the first display device to display the one or moreholograms of the subset of data items to the first user at the virtualplace-located anchor at the virtual location; determining if thecondition is satisfied; and if the condition is satisfied, transmittingsecond display data to cause a second display device to display the oneor more holograms of the subset of data items to the second user at thevirtual place-located anchor at the virtual location. The method mayadditionally or optionally include wherein the target data sourcecomprises a social network, and the subset of the plurality of dataitems comprises third party comments to a posting from the first user onthe social network. The method may additionally or optionally include,in the creating phase, transmitting an instruction to the social networkto indicate that the posting is associated with the virtualplace-located anchor. The method may additionally or optionally include,wherein the first display data causes the first display device to:display at the virtual location an anchor hologram representing thevirtual place-located anchor; and display the one or more hologramswithin a predetermined distance of the anchor hologram. The method mayadditionally or optionally include, wherein the virtual location isworld-locked to a position that is fixed in a three dimensionalcoordinate space overlaid upon the real world three dimensionalenvironment. The method may additionally or optionally include, whereinthe virtual location is world-locked to a position relative to an objectin the real world three dimensional environment. The method mayadditionally or optionally include, wherein the object is at an initialreal world location: in the creating phase: receiving sensor data fromthe first user device; using the sensor data, identifying the object ata subsequent real world location different from the initial real worldlocation; and in the viewing phase: transmitting subsequent display datato the first display device that causes the first display device todisplay the one or more holograms to the first user at the virtualplace-located anchor at the virtual location world-locked to theposition relative to the object at the subsequent real world location.The method may additionally or optionally include, wherein the virtualplace-located anchor is a base virtual place-located anchor: in thecreating phase: receiving an instruction to generate a mirrored virtualplace-located anchor at another virtual location that is world-locked;and in the viewing phase: transmitting mirror display data to the firstdisplay device that causes the first display device to display the oneor more holograms to the first user at the mirrored virtualplace-located anchor at the other virtual location. The method mayadditionally or optionally include, wherein the plurality of data itemsare a first plurality of data items, the target data source is a firsttarget data source, the method further comprising: in the creatingphase: receiving a second plurality of data items from a second targetdata source at which the first user has an account; linking a subset ofthe second plurality of data items to the virtual place-located anchor;and in the viewing phase:

transmitting second target data source display data to the first displaydevice that causes the first display device to display one or moreworld-locked holograms of the subset of the second plurality of dataitems to the first user at the virtual place-located anchor. The methodmay additionally or optionally include, wherein the target data sourceis a social network and the permission is a connection permission, andif the second user is connected with the first user via the socialnetwork, then the condition is satisfied. The method may additionally oroptionally include, wherein the permission is a place-based permission,and if the second user device is located within a predetermined viewingrange of the virtual place-located anchor, then the condition issatisfied.

Another aspect provides a computing device, comprising: an anchorprogram executed by a processor of the computing device, the anchorprogram configured to: in a creating phase: receive an instruction togenerate a virtual place-located anchor at a virtual location that isworld-locked; receive a plurality of data items from a target datasource at which a first user has an account; link a subset of theplurality of data items to the virtual place-located anchor; receive apermission via user input from the first user, the permission specifyinga condition under which a second user is authorized to view one or moreholograms of the subset of data items; in a viewing phase: transmitfirst display data to a first display device comprising an at leastpartially see-through display configured to visually augment a view of areal world three dimensional environment through the display, the firstdisplay data causing the first display device to display the one or moreholograms of the subset of data items to the first user at the virtualplace-located anchor at the virtual location; determine if the conditionis satisfied; and if the condition is satisfied, transmit second displaydata to cause a second display device to display the one or moreholograms of the subset of data items to the second user at the virtualplace-located anchor at the virtual location. The computing device mayadditionally or optionally include, wherein the virtual location isworld-locked to a position that is fixed in a three dimensionalcoordinate space overlaid upon the real world three dimensionalenvironment. The computing device may additionally or optionallyinclude, wherein the virtual location is world-locked to a positionrelative to an object in the real world three dimensional environment.The computing device may additionally or optionally include, wherein theobject is at an initial real world location, and the anchor program isconfigured to: in the creating phase: receive sensor data from the firstuser device; using the sensor data, identify the object at a subsequentreal world location different from the initial real world location; andin the viewing phase: transmit subsequent display data to the firstdisplay device that causes the first display device to display the oneor more holograms to the first user at the virtual place-located anchorat the virtual location world-locked to the position relative to theobject at the subsequent real world location. The computing device mayadditionally or optionally include, wherein the subset of the pluralityof data items comprises third party comments related to an image, avideo, a comment, or an update that is posted by the first user to thetarget data source. The computing device may additionally or optionallyinclude, wherein the anchor program is configured to: in the creatingphase: receive from the first display device an image of an object inthe real world three dimensional environment at the virtual location,wherein the image is posted to the target data source; and filter theplurality of data items by selecting third party comments associatedwith the image as the subset of the plurality of data items. Thecomputing device may additionally or optionally include, wherein thevirtual place-located anchor is a base virtual place-located anchor, andthe anchor program is configured to: in the creating phase: receive aninstruction to generate a mirrored virtual place-located anchor atanother virtual location that is world-locked; and in the viewing phase:transmit mirror display data to the first display device that causes thefirst display device to display the one or more holograms to the firstuser at the mirrored virtual place-located anchor at the other virtuallocation. The computing device may additionally or optionally include,wherein the plurality of data items are a first plurality of data items,the target data source is a first target data source, and the anchorprogram is configured to: in the creating phase: receive a secondplurality of data items from a second target data source at which thefirst user has an account; link a subset of the second plurality of dataitems to the virtual place-located anchor; and in the viewing phase:transmit second target data source display data to the first displaydevice that causes the first display device to display one or moreworld-locked holograms of the subset of the second plurality of dataitems to the first user at the virtual place-located anchor.

Another aspect provides a method, comprising: in a creating phase:receiving an instruction to generate a virtual place-located anchor at avirtual location that is world-locked to a position relative to anobject in the real world three dimensional environment; receiving aplurality of data items from a social network at which a first user hasan account; linking a subset of the plurality of data items to thevirtual place-located anchor, the subset of data items comprising thirdparty comments to a posting from the first user on the social network;receiving a permission via user input from the first user, thepermission specifying a condition under which a second user isauthorized to view one or more holograms of the subset of data items; ina viewing phase: transmitting first display data to a first displaydevice comprising an at least partially see-through display configuredto visually augment a view of a real world three dimensional environmentthrough the display, the first display data causing the first displaydevice to display the one or more holograms of the subset of data itemsto the first user at the virtual place-located anchor at the virtuallocation; determining if the condition is satisfied; and if thecondition is satisfied, transmitting second display data to cause asecond display device to display the one or more holograms of the subsetof data items to the second user at the virtual place-located anchor atthe virtual location.

1. A method, comprising: in a creating phase: receiving an instructionto generate a virtual place-located anchor at a virtual location that isworld-locked; receiving a plurality of data items from a target datasource at which a first user has an account; linking a subset of theplurality of data items to the virtual place-located anchor; receiving apermission via user input from the first user, the permission specifyinga condition under which a second user is authorized to view one or moreholograms of the subset of data items; in a viewing phase: transmittingfirst display data to a first display device comprising an at leastpartially see-through display configured to visually augment a view of areal world three dimensional environment through the display, the firstdisplay data causing the first display device to display the one or moreholograms of the subset of data items to the first user at the virtualplace-located anchor at the virtual location; determining if thecondition is satisfied; and if the condition is satisfied, transmittingsecond display data to cause a second display device to display the oneor more holograms of the subset of data items to the second user at thevirtual place-located anchor at the virtual location.
 2. The method ofclaim 1, wherein the target data source comprises a social network, andthe subset of the plurality of data items comprises third party commentsto a posting from the first user on the social network.
 3. The method ofclaim 2, further comprising, in the creating phase, transmitting aninstruction to the social network to indicate that the posting isassociated with the virtual place-located anchor.
 4. The method of claim1, wherein the first display data causes the first display device to:display at the virtual location an anchor hologram representing thevirtual place-located anchor; and display the one or more hologramswithin a predetermined distance of the anchor hologram.
 5. The method ofclaim 1, wherein the virtual location is world-locked to a position thatis fixed in a three dimensional coordinate space overlaid upon the realworld three dimensional environment.
 6. The method of claim 1, whereinthe virtual location is world-locked to a position relative to an objectin the real world three dimensional environment.
 7. The method of claim6, wherein the object is at an initial real world location, furthercomprising: in the creating phase: receiving sensor data from the firstuser device; using the sensor data, identifying the object at asubsequent real world location different from the initial real worldlocation; and in the viewing phase: transmitting subsequent display datato the first display device that causes the first display device todisplay the one or more holograms to the first user at the virtualplace-located anchor at the virtual location world-locked to theposition relative to the object at the subsequent real world location.8. The method of claim 1, wherein the virtual place-located anchor is abase virtual place-located anchor, the method further comprising: in thecreating phase: receiving an instruction to generate a mirrored virtualplace-located anchor at another virtual location that is world-locked;and in the viewing phase: transmitting mirror display data to the firstdisplay device that causes the first display device to display the oneor more holograms to the first user at the mirrored virtualplace-located anchor at the other virtual location.
 9. The method ofclaim 1, wherein the plurality of data items are a first plurality ofdata items, the target data source is a first target data source, themethod further comprising: in the creating phase: receiving a secondplurality of data items from a second target data source at which thefirst user has an account; linking a subset of the second plurality ofdata items to the virtual place-located anchor; and in the viewingphase: transmitting second target data source display data to the firstdisplay device that causes the first display device to display one ormore world-locked holograms of the subset of the second plurality ofdata items to the first user at the virtual place-located anchor. 10.The method of claim 1, wherein the target data source is a socialnetwork and the permission is a connection permission, and if the seconduser is connected with the first user via the social network, then thecondition is satisfied.
 11. The method of claim 1, wherein thepermission is a place-based permission, and if the second user device islocated within a predetermined viewing range of the virtualplace-located anchor, then the condition is satisfied.
 12. A computingdevice, comprising: an anchor program executed by a processor of thecomputing device, the anchor program configured to: in a creating phase:receive an instruction to generate a virtual place-located anchor at avirtual location that is world-locked; receive a plurality of data itemsfrom a target data source at which a first user has an account; link asubset of the plurality of data items to the virtual place-locatedanchor; receive a permission via user input from the first user, thepermission specifying a condition under which a second user isauthorized to view one or more holograms of the subset of data items; ina viewing phase: transmit first display data to a first display devicecomprising an at least partially see-through display configured tovisually augment a view of a real world three dimensional environmentthrough the display, the first display data causing the first displaydevice to display the one or more holograms of the subset of data itemsto the first user at the virtual place-located anchor at the virtuallocation; determine if the condition is satisfied; and if the conditionis satisfied, transmit second display data to cause a second displaydevice to display the one or more holograms of the subset of data itemsto the second user at the virtual place-located anchor at the virtuallocation.
 13. The computing device of claim 12, wherein the virtuallocation is world-locked to a position that is fixed in a threedimensional coordinate space overlaid upon the real world threedimensional environment.
 14. The computing device of claim 12, whereinthe virtual location is world-locked to a position relative to an objectin the real world three dimensional environment.
 15. The computingdevice of claim 14, wherein the object is at an initial real worldlocation, and the anchor program is configured to: in the creatingphase: receive sensor data from the first user device; using the sensordata, identify the object at a subsequent real world location differentfrom the initial real world location; and in the viewing phase: transmitsubsequent display data to the first display device that causes thefirst display device to display the one or more holograms to the firstuser at the virtual place-located anchor at the virtual locationworld-locked to the position relative to the object at the subsequentreal world location.
 16. The computing device of claim 12, wherein thesubset of the plurality of data items comprises third party commentsrelated to an image, a video, a comment, or an update that is posted bythe first user to the target data source.
 17. The computing device ofclaim 12, wherein the anchor program is configured to: in the creatingphase: receive from the first display device an image of an object inthe real world three dimensional environment at the virtual location,wherein the image is posted to the target data source; and filter theplurality of data items by selecting third party comments associatedwith the image as the subset of the plurality of data items.
 18. Thecomputing device of claim 12, wherein the virtual place-located anchoris a base virtual place-located anchor, and the anchor program isconfigured to: in the creating phase: receive an instruction to generatea mirrored virtual place-located anchor at another virtual location thatis world-locked; and in the viewing phase: transmit mirror display datato the first display device that causes the first display device todisplay the one or more holograms to the first user at the mirroredvirtual place-located anchor at the other virtual location.
 19. Thecomputing device of claim 12, wherein the plurality of data items are afirst plurality of data items, the target data source is a first targetdata source, and the anchor program is configured to: in the creatingphase: receive a second plurality of data items from a second targetdata source at which the first user has an account; link a subset of thesecond plurality of data items to the virtual place-located anchor; andin the viewing phase: transmit second target data source display data tothe first display device that causes the first display device to displayone or more world-locked holograms of the subset of the second pluralityof data items to the first user at the virtual place-located anchor. 20.A method, comprising: in a creating phase: receiving an instruction togenerate a virtual place-located anchor at a virtual location that isworld-locked to a position relative to an object in the real world threedimensional environment; receiving a plurality of data items from asocial network at which a first user has an account; linking a subset ofthe plurality of data items to the virtual place-located anchor, thesubset of data items comprising third party comments to a posting fromthe first user on the social network; receiving a permission via userinput from the first user, the permission specifying a condition underwhich a second user is authorized to view virtual content of the subsetof data items; in a viewing phase: transmitting first display data to afirst display device configured to visually augment a view of a realworld three dimensional environment, the first display data causing thefirst display device to display the virtual content of the subset ofdata items to the first user at the virtual place-located anchor at thevirtual location; determining if the condition is satisfied; and if thecondition is satisfied, transmitting second display data to cause asecond display device to display the virtual content of the subset ofdata items to the second user at the virtual place-located anchor at thevirtual location.